查看原文
其他

重磅:保障汽车软件安全更新 美国研发新开源框架

2017-01-21 John IntelligentThings

导读


汽车工业正在走向车联网时代,迅速发展之际,安全形势也日益严峻。最近,美国科研人员开发了一个免费、通用、开源的软件框架,用于保护汽车中的软件更新。在开源框架投入汽车工业使用之前,研究团队呼吁世界各地的安全专家帮助他们寻找该框架的漏洞。


简介


这款开源安全软件框架名为“Uptane”,它在目前广泛使用的“TUF”(软件更新框架)基础上发展而来。


Uptane 项目,由纽约大学坦登工程学院计算机科学和工程学院的助理教授 Justin Cappos 领导,由纽约大学坦登工程学院和密歇根大学交通研究所(UMTRI),美国西南研究院(SwRI)合作开展。



(图片来源于:纽约大学坦登工程学院)


背景


ECU


如今,汽车内部都会具有一些列的微机控制模块,简称“电子控制单元”(ECU),又称为“行车电脑”、“车载电脑”。它是一种汽车专用微机控制器,和普通电脑一样,由微处理器、存储器、输入输出设备、模数转换器等大规模集成电路组成。这些ECU控制了汽车主要的安全设备例如安全气囊、刹车系统、发动机和传动装置等环节。



(图片来源于:维基百科)


ECU升级


然而,ECU和普通的计算机系统一样,随着根据用户需要的变化,软件缺陷和功能的相关更新,也会遭遇软件(固件)升级的情况。例如, F1等汽车拉力赛的赛车,需要根据不同的赛道情况,来改善发动机动力输出,以提高赛车成绩,这时就会需要更新ECU。更新ECU固件,就类似更新计算机主板BIOS,对发动机来说,可以达到调控发动机动力输出数值的效果。


传统的升级方式,一般都需要专业人员将ECU拆出,连接专业设备进行升级。然而,这种方法需要用户去汽车维修站或者返回原厂进行升级,操作难度大、过程复杂、风险高。


OTA升级


然而,对于新能源和车联网汽车来说,例如丰电和特斯拉的一些型号,都可以通过空中无线通信的“空中升级服务”(OTA)方式,对于ECU进行软件升级。升级可以修复车辆控制单元的安全漏洞,或者追加新的功能。这种方式通过无线网络更新,无需用户去维修站,更加方便、安全、快捷,同时也减少了厂家的召回。


安全风险


OTA 升级方式也并不是万无一失的,黑客仍然会瞄准这些汽车软件更新机制,安装恶意软件,病毒,甚至是勒索软件。一旦发生类似事件,结果往往是灾难性的。


Uptane


Uptane,正是为汽车制造商提供一种安全的软件更新框架,以抵御各种安全攻击和威胁。它的设计正是针对汽车行业的特点,考虑到其特殊的风险和限制。其中众多设计细节,是和美国大多数汽车行业厂商和专家一起合作完成的。所以,它具有更加好的灵活性,适应各个汽车厂家需求,抵御各种安全风险。


研究人员称开发Uptane的首要目标,就是创建汽车软件安全更新机制,保持最强的安全级别。不管更新的来源是哪里,该机制都可以尽可能地确保软件更新的真实性和可靠性,同时也能够灵活地支持各个特殊的用户模型和部署机制。


下面,首先介绍一下汽车安全威胁的来源,即黑客针对ECU的攻击要达成的目标和攻击采取的行动。


攻击类型


针对ECU的主要攻击类型,根据其目的,可以分为:


第一,读取更新


攻击者会窃取软件更新内容,研究ECU固件内容,盗取汽车的知识产权财富。


第二,拒绝更新


攻击者想要阻止汽车修复软件问题。有以下类型:

  • 阻止更新攻击:阻止汽车内部或者外部的网络流量,让ECU无法接收任何更新。

  • 缓慢检索攻击:让ECU缓慢地接收应用更新,这样攻击者可以同时展开安全攻击。

  • 冻结攻击:在ECU已经有更新的情况下,不定期的发送给ECU已有的更新。

  • 软件版本部分安装攻击:让一些ECU无法完全安装最新的更新。攻击者可以通过阻止ECU的网络通信来完成这个目的。有时,这种攻击也会偶然地发生在电力供应终端的情况下。


第三,阻碍工作


攻击者会尝试让ECU工作失效,使汽车或者其组件短时间或者永久性的行为反常,有以下攻击方式:


  • 回滚攻击:让ECU安装具有问题的过期软件。

  • 无休止数据攻击:这是攻击者最简单的攻击方式之一,通过执行无休止的数据攻击,发送大量的数据让ECU存储空间耗尽,从而发生崩溃。

  • 混合软件版本攻击:它会引起ECU在互操作方面的失败,阻止汽车正常工作。攻击者通过给不同的ECU安装不兼容的软件更新版本(不能同时安装),从而达到攻击目的。攻击者虽然无法设计出新的软件包,但是他们能够给不同的ECU同时安装不同版本软件更新。

  • 混搭的攻击:这种攻击也会引起ECU互操作性方面的失败,如果攻击者盗用了服务器密钥,他们可以使用这些密钥发布一个独特的新软件镜像。例如ECU-1和ECU-2都可以从软件分支3上安装更新。但是,攻击者已经滥用签署软件版本的密钥。这种混搭的攻击,比前面提到软件版本部分安装攻击和混合软件版本攻击更加恶劣,因为攻击者可以任意组合更新。

第四,控制


这是第四点,也是最严重的一点。攻击者能够修改汽车的性能。攻击者让ECU安装攻击者选择的软件,这样导致攻击者可以随意修改汽车的性能。他们可以通过任意的软件攻击,以恶意软件覆盖ECU现有的软件。


攻击行动


那么,攻击者又会采取那些具体行动呢?


  1. 拦截和改变网络通信(例如进行中间人攻击),这些行动的实现途径包括:(1)汽车外部:攻击者可以控制用于发布软件更新的蜂窝网络;(2)汽车内部:攻击者可以控制ECU网关、普通ECU、OBD-II 接口、 USB。

  2. 危害汽车ECU。

  3. 危害软件更新的密钥或者存储密钥的服务器。


防御机制


Uptane 框架所具有的主要抵御机制有以下四条:


第一,使用额外的存储空间从无休止的数据攻击中恢复。



(图片来源于:参考资料【3】)


前面提到,黑客会对于ECU执行无休止的数据攻击。然而,ECU往往只存储一个镜像文件。这样,如果这些攻击者会通过给ECU发送随机数据,而不是实际的镜像文件,让它无法启动到工作镜像中去。虽然,引导程序能够检查出随机数据和最近下载的元数据不匹配。


为了解决这个问题,ECU可以使用一个额外的存储空间,使得它可以有足够的存储空间保存之前的镜像和最新下载的镜像。ECU在更新时,无需具有覆盖之前已知的良好镜像。这样,如果攻击者在数据传输时修改了镜像,它仍然可以引导到功能镜像。


第二,广播元数据防止混合软件版本攻击


(图片来源于:参考资料【3】)


攻击者控制了主ECU以后,就可以执行混合软件攻击,因为它们可以向不同的从ECU,同时展示不同版本的元数据。为了防止这个问题,主ECU需要向从ECU广播最新下载的元数据。


所以,在CAN网络或者以太网络中,主ECU向某个从ECU发送的任何元数据,也需要同时发向其他的ECU。


第三,使用版本清单检测软件部分安装攻击


(图片来源于:参考资料【3】)


即使有时ECU没有受到任何其他攻击,但是也偶尔会出现一种软件版本部分安装攻击的情况,导致ECU只成功安装了部分的软件更新。


无论,这些攻击是如何发生的,OEM 都可以通过软件版本清单和ECU关于它最近安装的签署信息,检测这种攻击。在验证和安装更新后,ECU会使用OEM在汽车制造期间提供的对称密钥,来验证其安装的软件,然后发送给主设备。


ECU,每个点火周期只会进行一次签署和发回它的版本清单。主设备将搜集这些签名,构建汽车版本信息,然后发送给汽车制造商。如果汽车制造商发现最近的汽车更新,和它们实际安装的不匹配,制造商将会收到警报,并且采取进一步行动。


第四,使用时间服务器限制冻结攻击


(图片来源于:参考资料【3】)


关于攻击者对于ECU采取的冻结攻击,是由于ECU桌面和服务器程序不同,E无法具有可靠的时钟。这样主设备不能判断元数据是否超时。


为了解决这个问题,每个ECU应该使用外部时钟,周期性地更新目前的时间。


集思广益


因为Uptane是开源的,所以与任何一个开源项目的标准流程一样,团队正在呼吁全是世界的安全专家和学术机构,帮助他们发现该软件框架的漏洞,以及模仿黑客对于该框架展开攻击,以进一步完善该框架,最终形成稳定的版本。


参考资料


【1】http://engineering.nyu.edu/press-releases/2017/01/18/call-issued-white-hat-hackers-find-flaws-new-automotive-software-updater

【2】https://uptane.github.io/

【3】https://isis.poly.edu/~jcappos/papers/kuppusamy_escar_16.pdf


相关阅读




对于前沿创新技术或者产品有兴趣,需要咨询或者讨论,可以直接评论留言,也可以直接联系微信:JohnZh1984。



如果您想了解更多的前沿技术文章,直接点击“阅读原文”!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存